#include <iostream>
#include <future>
#include <thread>
#include <chrono>

int Add(int nums1, int nums2)
{
    std::cout << "into add" << std::endl;
    return nums1 + nums2;
}

int main()
{
    // 先要封装任务
    auto task = std::make_shared<std::packaged_task<int(int, int)>>(Add);
    // 然后获取future
    std::future<int> res = task->get_future();

    //
    std::thread thr([task]()
                    { (*task)(11, 22); });

    std::cout << res.get() << std::endl;

    thr.join();

    return 0;
}